用c++建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。

您所在的位置:网站首页 magic shapes什么意思 用c++建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。

用c++建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。

2024-07-11 12:06| 来源: 网络整理| 查看: 265

具体要求如下:

(1)形状类Shape (a)保护数据成员 double x,y:对于不同的形状,x和y表示不同的含义,如对于圆,x和y均表示圆的半径,而对于矩形,x表示矩形的长,y表示矩形的宽。访问权限定义为保护类型是为了能被继承下去,以便派生类能直接访问x和y。 (b)公有成员函数 构造函数Shape(double _x,double _y):用_x、_y分别初始化x、y。 double GetArea():求面积,在此返回0.0。 (2)圆类Circle,从Shape公有派生 (a)公有成员函数 Circle(double r):构造函数,并用r构造基类的x和y。 double GetArea():求圆的面积。 double GetRadius():获取圆的半径。 (3)矩形类Rectangle,从Shape公有派生 (a)公有成员函数 Rectangle(double l,double w) :构造函数,并用l和w构造基类的x和y。 double GetArea():求矩形的面积。 double GetLength():获取矩形的长。 double GetWidth():获取矩形的宽。 (4)在主函数中对派生类进行测试。注意,在程序的开头定义符号常量PI的值为3.14。测试的输出结果如下: circle:r=1, area=3.14 rectangle:length=3, width=4, area=12

Shape.h

#ifndef _SHAPE_H_ #define _SHAPE_H_ class Shape{ protected: double x; double y; //对于不同的形状,x和y表示不同的含义,如对于圆,x和y均表示圆的半径,而对于矩形,x表示矩形的长,y表示矩形的宽。访问权限定义为保护类型是为了能被继承下去,以便派生类能直接访问x和y。 public: Shape(double _x,double _y); //用_x、_y分别初始化x、y。 double GetArea(); //求面积,在此返回0.0。 }; class Circle:public Shape{ public: Circle(double r); //构造函数,并用r构造基类的x和y。 double GetArea(); //求圆的面积。 double GetRadius(); //获取圆的半径。 }; class Rectangle:public Shape{ public: Rectangle(double l,double w) ; //构造函数,并用l和w构造基类的x和y。 double GetArea(); //求矩形的面积。 double GetLength(); //获取矩形的长。 double GetWidth(); //获取矩形的宽。 }; #endif Shape.cpp

#include #include "Shape.h" #define PI 3.14 Shape::Shape(double _x,double _y) { x = _x; y = _y; } double Shape::GetArea() { return 0.0; } Circle::Circle(double r):Shape(r,r){} double Circle::GetArea() { return PI*x*x; } double Circle::GetRadius() { return x; } Rectangle::Rectangle(double l,double w):Shape(l,w){} double Rectangle::GetArea() { return x*y; } double Rectangle:: GetLength() { return x; } double Rectangle::GetWidth() { return y; } main.cpp

#include #include "Shape.h" #define PI 3.14 int main() { Circle cir(1); std::cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3